package com.effective.java.singleton;

/**
 * 写单例的三个步骤：
 * 1.构造其私有化
 * 2.声明静态变量
 * 3.提供静态获取实例的方法
 *最基本的单例模式的写法
 *
 * 考虑到线程安全的问题，会用synchronized 关键字修饰getInstance()方法，另外还有饿汉式、懒汉式、静态内部类、双重校验锁的写法。
 * 但是这种写法存在缺陷，可以利用反射的方式来实例化多个不同的实例
 */

class SingletonA {

    private static SingletonA instance = new SingletonA();

    private SingletonA(){}

    public static SingletonA getInstance(){
        return instance;
    }
}
